
import mysql from 'mysql'
import {RemoteSqlConfig} from '../../localConfig/config.js'
/*
连接池连接
// 创建一个连接池
// 连接池可以重用连接，避免频繁创建和销毁连接的开销
var pool  = mysql.createPool({
  connectionLimit : 10,
  ...RemoteSqlConfig,
  //   charset:'',
  // stringifyObjects:true,
  // dateStrings: true,
  // ssl:'',

});

function handleSql(sql,values=[]){
  // 使用连接池获取连接 --> 连接执行查询 ---> 连接释放 ; 
  // 这一整套执行完，连接释放后，有助于后续操作共享连接池的状态

  return new Promise((resolve, reject) => {
    // 注意：连接池的异步特性
    pool.getConnection(function(err, connection) {
      if (err) {
        reject(err); // 连接失败
        return;
      } // not connected!

      connection.query(`${sql}`, values, function (error, results, fields) {
        connection.release(); // 释放连接
        if (error) {
          reject(error); // 查询失败
          return;
        }

        //放release前面还是release后面，？？？
        console.log('查询结果', results);
        resolve(results); // 返回查询结果
        // Don't use the connection here, it has been returned to the pool.

      });
    });
  })
}



//终止池中的所有连接
pool.end(function (err) {
  // all connections in the pool have ended
});
*/






// /*
// 直接创建连接
const connection = mysql.createConnection({
  ...RemoteSqlConfig,
//   charset:'',
// stringifyObjects:true,
// dateStrings: true,
// ssl:'',


})

// 显示 建立数据库连接
connection.connect(function(err){
    if(err){
        console.log('连接失败------'+err.stack)
        return 
    }
    console.log('连接成功，线程ID：' + connection.threadId)
})


function handleSql(sql,values=[]){
  return new Promise((resolve, reject) => {
    // 隐示 建立数据库连接
    connection.query(`${sql}`, values, function (error, results, fields) {
      if (error) {
        reject(error)
        return ;
      }
      // console.log('查询结果', results);
      resolve(results); // 返回查询结果
      return
    });
  })
}


// connection.end()

// */




export {
  handleSql
}